The disclosed embodiments relate to wireless communications, and more particularly, to a wireless communication receiver which can start outputting de-interleaver output before all buffers included in branches of the de-interleaver are full and notify a signal processing block following the de-interleaver about data that are derived from unfull buffer(s) included in the branches of the de-interleaver, and a related signal processing method thereof.
Convolutional interleaving/de-interleaving is commonly used in a variety of communication systems. FIG. 1 is a diagram illustrating a conventional interleaver configuration and a conventional de-interleaver configuration. A convolutional interleaver 10 at a transmitting end of a communication channel 30 includes B branches indexed by 0, 1, 2, 3 . . . , B−1, respectively. In addition, the branches in the convolutional interleaver 10 have different buffer lengths. For example, branch 0 is a direct connection with no buffer applied thereto, branches 1, 2, 3, and B−1 have buffers 14, 15, 16, and 17 disposed thereon for offering buffer lengths equal to 1×M, 2×M, 3×M, and (B−1)×M, respectively. A convolutional de-interleaver 20 at a receiving end of the communication channel 30 includes B branches indexed by 0 . . . , B−4, B−3, B−2, and B−1, respectively. As one can see, the branches 0 . . . , B−4, B−3, B−2, and B−1 in the convolutional de-interleaver 20 have the same buffer lengths as the branches B−1 . . . , 3, 2, 1, and 0 in the convolutional interleaver 10. The convolutional interleaver 10 and convolutional de-interleaver 20 are operated by using the switches 11, 12, 21, and 22 to sequentially and cyclically select the branches. As details of the convolution interleaver 10 and convolutional de-interleaver 20 are well known to those skilled in the pertinent art, further description is omitted here for brevity.
In accordance with a conventional design, the convolutional de-interleaver 20 will not transmit data bits or symbols derived from the branches to a following signal processing stage (e.g., a decoder) until the convolutional de-interleaver 20 is full (i.e., all of the buffers included in the branches, such as buffers 24-27, are full), which results in a serious de-interleaving delay in certain communication systems. In other words, the following signal processing stage has to wait for its input data from the convolutional de-interleaver 20. For example, in a case where the buffer 27 with the longest buffer length is not full yet, but the remaining buffers with shorter buffer lengths are already full, the convolutional de-interleaver 20 directly discards any data bits or symbols derived from the branches as all of the branches in the convolutional de-interleaver 20 are not full yet; in another case where the buffer 27 with the longest buffer length becomes full, meaning that all of the branches in the de-interleaver 20 are full now, the convolutional de-interleaver 20 is allowed to start outputting data bits or symbols sequentially and cyclically derived from the branches to the following signal processing stage.
As one can see, the de-interleaving delay depends on the values of B and M. More specifically, the de-interleaving delay is equal to M*(B−1)*B. For certain communication systems, the acquisition time of the receiver would be quite long due to de-interleaving delay. Taking the Digital Terrestrial Multimedia Broadcasting (DTMB) receiver for example, if mode 1 (B=52 and M=240) is employed, the de-interleaving delay is approximately equal to 106.25 ms when the pseudo-random noise sequence in each signal frame has 945 symbols (i.e., PN=945), and if mode 2 (B=52 and M=720) is employed, the de-interleaving delay is approximately equal to 318.75 ms when PN=945. Therefore, it is desired to devise a novel scheme which can reduce the required time to pass the convolutional de-interleaver for improving the overall performance of the receiving end.